package com.etc.demoarray.sort;

import java.util.Arrays;
import java.util.Random;

/**
 * @author: knowno
 * @create: 2024-09-04 09:29
 * @Version 1.0
 **/
public class BubbleSort {
    public static void main(String[] args) {

        int[] rand = new int[10];

        //1 给数组元素随机值
        Random random = new Random();
        for (int i = 0; i < rand.length; i++) {
            rand[i] = random.nextInt(100);
        }
        System.out.println("数组元素: " + Arrays.toString(rand));

        //排序
        bubbleSorting(rand);
        System.out.println("数组元素: " + Arrays.toString(rand));

    }

    /**
     * 冒泡排序
     * 规则： 相邻两个元素依次比较，满足条件，大的下沉(交换),
     * 对应的，我们使用两层循环来处理
     * 外层循环:控制比较的轮数 arr.length-1，内循环控制每轮比较的次数.
     *
     * @param arr
     */
    public static void bubbleSorting(int[] arr) {
        //外循环 =>控制比较的轮数
        for (int i = 0; i < arr.length - 1; i++) {
            //内循环 =>内循环控制每轮比较的次数
            for (int j = 0; j < arr.length - i - 1; j++) {

                //比较
                if (arr[j] > arr[j+1]){
                    int t = arr[j];
                    arr[j]= arr[j+1];
                    arr[j+1] = t;
                }
            }

        }

    }
}
